package com.young.shop.admin.dao;


import com.young.shop.pojo.entity.Goods;
import org.apache.ibatis.annotations.Param;


import java.util.List;


public interface GoodsMapper {
	/**
	 * 获取所有商品信息
	 *
	 * @return 返回商品所有信息
	 */
//	List<Goods> selectAllGoods();


	/**
	 * 通过id修改单个商品状态值
	 *
	 * @param id
	 * @param status
	 * @return
	 */
	int updateGoodsById(@Param("id") int id, @Param("status") int status, @Param("date") String date);


	/**
	 * 通过id查询商品
	 *
	 * @param id
	 * @return
	 */
	Goods selectGoodsById(int id);


	/**
	 * 查询当前页的商品信息
	 *
	 * @param currentPage
	 * @param pageSize
	 * @return
	 */
	List<Goods> selectGoods(@Param("status") Integer status,
							@Param("currentPage") Integer currentPage,
							@Param("pageSize") Integer pageSize,
							@Param("type") String type);


	/**
	 * 查询总共有多少条数据
	 *
	 * @return
	 */
//	Object selectTotalCount();


	/**
	 * 查询各种情况总共有多少条数据
	 * @return
	 */
	Object findTotalCount(@Param("type")String type,@Param("status")Integer status);



	/**
	 * 获取商品类型
	 *
	 * @param type
	 * @return
	 */
//	List<Goods> selectGoodsByType(String type);


	/**
	 * 根据类型分页查询
	 *
	 * @param currentPage 当前页
	 * @param pageSize    显示条数
	 * @param type        商品类型
	 * @return 商品列表
	 */
//	List<Goods> selectGoodsTypePage(@Param("currentPage") int currentPage, @Param("pageSize") int pageSize, @Param("type") String type);


	/**
	 * 获取在售商品数量
	 *
	 * @return
	 */
	Object selectOnSaleGoodsCount();


	/**
	 * 获取下架商品数量
	 *
	 * @return
	 */
	Object selectUnSaleGoodsCount();



	/**
	 * 新增商品
	 *
	 * @param goods 产品信息（方法调用完返回ID）
	 * @return 1 成功 其它失败
	 */
	int insertGoods(Goods goods);


	/**
	 * 根据状态获取商品列表
	 * @param status 商品状态
	 * @return 商品列表
	 */
//	List<Goods> selectGoodsByStatus(@Param("status")int status,@Param("currentPage") int currentPage,@Param("pageSize") int pageSize);


	/**
	 * 根据状态获取商品列表111111111
	 * @param status 1
	 * @return
	 */
//	List<Goods> goodsByStatus(Integer status);


	/**
	 * 根据商品 id 删除商品
	 * @param id 商品id
	 * @return 1 删除成功
	 */
	int deleteGoodsById(Integer id);
}
